Make the error reporting back to xm just a little bit less insane, and fix a
authoremellor@ewan <emellor@ewan>
Wed, 12 Oct 2005 12:13:32 +0000 (13:13 +0100)
committeremellor@ewan <emellor@ewan>
Wed, 12 Oct 2005 12:13:32 +0000 (13:13 +0100)
missing import inside blkif.  Fix the command parsing for op_device_destroy and
op_device_configure -- the device IDs should be strings, to allow the user to
specify devices by name as well as number.

This is the second half to the fixes for bug #315.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
tools/python/xen/web/SrvBase.py
tools/python/xen/xend/server/SrvDomain.py
tools/python/xen/xend/server/blkif.py
tools/python/xen/xm/main.py

index 11b1d48f24d901349b7b20ecd0a06ee184db75ed..59eb313b3ebb39dfee0198b7f2969136daaa3083 100644 (file)
@@ -86,7 +86,7 @@ class SrvBase(resource.Resource):
             except Exception, exn:
                 log.exception("Request %s failed.", op)
                 if req.useSxp():
-                    return ['xend.err', "Exception: " + str(exn)]
+                    return ['xend.err', str(exn)]
                 else:
                     return "<p>%s</p>" % str(exn)
 
index a5c5dbfee78445f1b9a6976fb007012c5ed16393..535d9323f47929faa350ee83ff83fbab73f46565 100644 (file)
@@ -146,13 +146,13 @@ class SrvDomain(SrvDir):
     def op_device_destroy(self, op, req):
         return self.call(self.dom.destroyDevice,
                          [['type', 'str'],
-                          ['dev',  'int']],
+                          ['dev',  'str']],
                          req)
                 
     def op_device_configure(self, op, req):
         return self.call(self.dom.device_configure,
                          [['config', 'sxpr'],
-                          ['dev',    'int']],
+                          ['dev',    'str']],
                          req)
 
 
index a15edf0963e2ee62b4d25fc06a7decd117ff3a1c..d60607f0f48a039886f08f0911bc3e4fc82852f8 100644 (file)
@@ -22,6 +22,7 @@ import string
 
 from xen.util import blkif
 from xen.xend import sxp
+from xen.xend.XendError import VmError
 
 from xen.xend.server.DevController import DevController
 
index 11e2ff71944f4e940627f9e9a8b9a77bc6af3a14..54d72195bc34acaae2c7c6a3796df3b18c90a97a 100644 (file)
@@ -169,11 +169,9 @@ def handle_xend_error(cmd, dom, ex):
     if error == "Not found" and dom != None:
         err("Domain '%s' not found when running 'xm %s'" % (dom, cmd))
         sys.exit(1)
-    elif error == "Exception: Device not connected":
-        err("Device not connected")
-        sys.exit(1)
     else:
-        raise ex
+        err(error)
+        sys.exit(1)
     
 
 #########################################################################